b76dc5e872641b2521ae925c749c04688309eb7e,datumbox-framework-core/src/main/java/com/datumbox/framework/core/machinelearning/clustering/GaussianDPMM.java,Cluster,updateClusterParameters,#,249
Before Change
RealMatrix C = xi_square_sum.subtract( ( mu.outerProduct(mu) ).scalarMultiply(size) );
OpenMapRealMatrix psi = (OpenMapRealMatrix)psi0.add( C.add( ( mu_mu0.outerProduct(mu_mu0) ).scalarMultiply(kappa0*size/(double)kappa_n) ));
//C = null;
//mu_mu0 = null;
mean = ( mu0.mapMultiply(kappa0) ).add( mu.mapMultiply(size) ).mapDivide(kappa_n);
synchronized(this) {
covariance = (OpenMapRealMatrix)psi.scalarMultiply( (kappa_n+1.0)/(kappa_n*(nu - dimensions + 1.0)) );
cache_covariance_determinant = null;
cache_covariance_inverse = null;
}
After Change
RealMatrix C = xi_square_sum.subtract( ( mu.outerProduct(mu) ).scalarMultiply(size) );
RealMatrix psi = psi0.add( C.add( ( mu_mu0.outerProduct(mu_mu0) ).scalarMultiply(kappa0*size/(double)kappa_n) ));//
mean = ( mu0.mapMultiply(kappa0) ).add( mu.mapMultiply(size) ).mapDivide(kappa_n);
synchronized(this) {
covariance = psi.scalarMultiply( (kappa_n+1.0)/(kappa_n*(nu - dimensions + 1.0)) );
cache_covariance_determinant = null;
cache_covariance_inverse = null;
}